package com.open.pokergames.texas.repository.entity;

import com.open.pokergames.conn.bean.Player;
import com.open.pokergames.conn.bean.Visitor;

import org.jetbrains.annotations.NotNull;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.ConcurrentHashMap;

/**
 * 编写 Liang Y.T.
 * 时间 2021/7/16 14:22
 */
public class RoomIM implements Serializable {

    // 玩家集合
    private ConcurrentHashMap<String, Player> players;

//    // 入座玩家集合
//    private ConcurrentHashMap<String, Player> preparer;

    // 访客集合
    private ConcurrentHashMap<String, Visitor> visitors;

    // 大盲值
    private float bigCast;

    // 此刻跟注值
    private float roomCurrCast;

    // 扑克牌
    private TexasPokerBean texasPoker;

    // 获胜者信息
    private String winner;

    // 庄家座位
    private String bankerNo;

    // 小盲编号
    private String minCastNo;

    // 当前可询问的座位号
    private String enableAskSeats;

    // 是否已发公共牌
    private boolean hasSendPubCard;

    // 是否看牌
    private boolean canSeeCard;

    // 本局结束方式：0 正常比牌 1 AllIn 2 正常玩家人数不足2位 3 弃牌
    private int gameOverType;

    // ===========================================
    //  主键
    private String id;

    //  房间编号
    private String roomNum;

    //  房间名称
    private String roomName;

    //  描述
    private String roomDes;

    //  俱乐部ID
    private String groupId;

    //  所属群名称
    private String groupName;

    //  房主Id
    private String roomLeaderAccount;

    //  房主名称
    private String roomLeader;

    //  总局数
    private int gameSize;

    //  当前局数
    private int gameTimes;

    //  房间人数
    private int memberSize;

    //  底池
    private float baseCoins;

    //  最小下注
    private float minBet;

    //  最大下注
    private float maxBet;

    //  小盲下注值
    private float minCast;

    //  开启保险
    private Boolean hasInsurance;

    //  房间类型：0:普通/1:7张
    private int roomType;

    //  房主分成比例
    private int roomLeaderPc;

    //  合伙人Id
    private String partnerAccount;

    //  合伙人名称
    private String partnerName;

    //  合伙人分成比例
    private int partnerPc;

    //  类型：0:待入座 1:游戏中 2:已解散
    private int state;

    public ConcurrentHashMap<String, Player> getPlayers() {
        return players;
    }

    public void setPlayers(ConcurrentHashMap<String, Player> players) {
        this.players = players;
    }

    public ConcurrentHashMap<String, Visitor> getVisitors() {
        return visitors;
    }

    public void setVisitors(ConcurrentHashMap<String, Visitor> visitors) {
        this.visitors = visitors;
    }

    public float getBigCast() {
        return bigCast;
    }

    public void setBigCast(float bigCast) {
        this.bigCast = bigCast;
    }

    public float getRoomCurrCast() {
        return roomCurrCast;
    }

    public void setRoomCurrCast(float roomCurrCast) {
        this.roomCurrCast = roomCurrCast;
    }

    public TexasPokerBean getTexasPoker() {
        return texasPoker;
    }

    public void setTexasPoker(TexasPokerBean texasPoker) {
        this.texasPoker = texasPoker;
    }

    public String getWinner() {
        return winner;
    }

    public void setWinner(String winner) {
        this.winner = winner;
    }

    public String getBankerNo() {
        return bankerNo;
    }

    public void setBankerNo(String bankerNo) {
        this.bankerNo = bankerNo;
    }

    public String getMinCastNo() {
        return minCastNo;
    }

    public void setMinCastNo(String minCastNo) {
        this.minCastNo = minCastNo;
    }

    public String getEnableAskSeats() {
        return enableAskSeats;
    }

    public void setEnableAskSeats(String enableAskSeats) {
        this.enableAskSeats = enableAskSeats;
    }

    public boolean isHasSendPubCard() {
        return hasSendPubCard;
    }

    public void setHasSendPubCard(boolean hasSendPubCard) {
        this.hasSendPubCard = hasSendPubCard;
    }

    public boolean isCanSeeCard() {
        return canSeeCard;
    }

    public void setCanSeeCard(boolean canSeeCard) {
        this.canSeeCard = canSeeCard;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getRoomNum() {
        return roomNum;
    }

    public void setRoomNum(String roomNum) {
        this.roomNum = roomNum;
    }

    public String getRoomName() {
        return roomName;
    }

    public void setRoomName(String roomName) {
        this.roomName = roomName;
    }

    public String getRoomDes() {
        return roomDes;
    }

    public void setRoomDes(String roomDes) {
        this.roomDes = roomDes;
    }

    public String getGroupId() {
        return groupId;
    }

    public void setGroupId(String groupId) {
        this.groupId = groupId;
    }

    public String getGroupName() {
        return groupName;
    }

    public void setGroupName(String groupName) {
        this.groupName = groupName;
    }

    public String getroomLeader() {
        return roomLeader;
    }

    public void setroomLeader(String roomLeader) {
        this.roomLeader = roomLeader;
    }

    public int getGameSize() {
        return gameSize;
    }

    public void setGameSize(int gameSize) {
        this.gameSize = gameSize;
    }

    public int getGameTimes() {
        return gameTimes;
    }

    public void setGameTimes(int gameTimes) {
        this.gameTimes = gameTimes;
    }

    public int getMemberSize() {
        return memberSize;
    }

    public void setMemberSize(int memberSize) {
        this.memberSize = memberSize;
    }

    public float getBaseCoins() {
        return baseCoins;
    }

    public void setBaseCoins(float baseCoins) {
        this.baseCoins = baseCoins;
    }

    public float getMinBet() {
        return minBet;
    }

    public void setMinBet(float minBet) {
        this.minBet = minBet;
    }

    public float getMaxBet() {
        return maxBet;
    }

    public void setMaxBet(float maxBet) {
        this.maxBet = maxBet;
    }

    public float getMinCast() {
        return minCast;
    }

    public void setMinCast(int minCast) {
        this.minCast = minCast;
    }

    public Boolean getHasInsurance() {
        return hasInsurance;
    }

    public void setHasInsurance(Boolean hasInsurance) {
        this.hasInsurance = hasInsurance;
    }

    public int getRoomType() {
        return roomType;
    }

    public void setRoomType(int roomType) {
        this.roomType = roomType;
    }

    public int getroomLeaderPc() {
        return roomLeaderPc;
    }

    public void setroomLeaderPc(int roomLeaderPc) {
        this.roomLeaderPc = roomLeaderPc;
    }

    public String getroomLeaderAccount() {
        return roomLeaderAccount;
    }

    public void setroomLeaderAccount(String roomLeaderAccount) {
        this.roomLeaderAccount = roomLeaderAccount;
    }

    public String getPartnerAccount() {
        return partnerAccount;
    }

    public void setPartnerAccount(String partnerAccount) {
        this.partnerAccount = partnerAccount;
    }

    public String getPartnerName() {
        return partnerName;
    }

    public void setPartnerName(String partnerName) {
        this.partnerName = partnerName;
    }

    public int getPartnerPc() {
        return partnerPc;
    }

    public void setPartnerPc(int partnerPc) {
        this.partnerPc = partnerPc;
    }

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public String getRoomLeaderAccount() {
        return roomLeaderAccount;
    }

    public void setRoomLeaderAccount(String roomLeaderAccount) {
        this.roomLeaderAccount = roomLeaderAccount;
    }

    public String getRoomLeader() {
        return roomLeader;
    }

    public void setRoomLeader(String roomLeader) {
        this.roomLeader = roomLeader;
    }

    public int getRoomLeaderPc() {
        return roomLeaderPc;
    }

    public void setRoomLeaderPc(int roomLeaderPc) {
        this.roomLeaderPc = roomLeaderPc;
    }

    public int getGameOverType() {
        return gameOverType;
    }

    public void setGameOverType(int gameOverType) {
        this.gameOverType = gameOverType;
    }

    public void setMinCast(float minCast) {
        this.minCast = minCast;
    }
}
